SAP增强总结

您所在的位置:网站首页 abap badi增强实施 SAP增强总结

SAP增强总结

2024-07-10 00:13| 来源: 网络整理| 查看: 265

使用到的TCODE:SE24 、SE18、SE19

需求样例:使用MM01创建物料的销售视图时,销项税分类的字段自动填写默认值0。(因为MM01创建销售视图时虽然屏幕上并没有必输项,但是直接保存会提示销项税没维护的错误)

 

介绍由于一代、二代增强还是不能满足所有的业务需求,所有SAP在一代增强和二代增强的基础又开发出来第三代的增强。这就是BADI。BADI运用了面向对象的方式来体现增强。运用面向对象的思想来实现增强的话管理和实现起来就会方便很多,而且对系统的影响会比一代和二代增强小的多(因为,一代和二代增强都是直接在原程序里面进行修改的)。

学习的步骤如何查找BADI.第一种方式:

SE38->事务代码对应的程序名->在程序内搜索CL_EXITHANDLER

 

第二种方式:

SE24-> CL_EXITHANDLER->在GET_INSTANCE中打断点,然后运行相应事物码根据它来找到运行到的BADI。

 

第三种方式:

它的调用方式是call method(instance), 可以通过exit_handler关键词来查找

 

第四种方式:

ST05选择“table buffer trace”而不是常用的"SQL trace",然后查找表和视图(SXS_INTER,SXC_EXIT,SXC_CLASS和SXC_ATTR)找到对应的BADI.

 

 

 

 

根据上面的方法来实现我们的需求:SE24-> CL_EXITHANDLER->在GET_INSTANCE中打断点然后查找到下面这些BADI

 

输入TCODE-MM01后

BADI_SCREEN_LOGIC_RT

W_RETAILSYSTEM_IDENT

BADI_MATN1

 

选择视图时

BADI_MATERIAL_OD

 

进入事务代码后

BADI_MATERIAL_OD

ECM_EXIT

BADI_LAYER

GOS_SRV_SELECT

BADI_MATERIAL_OD

BADI_MATERIAL_REF

 

 

查看BADI。在SE18中分别查看这些BADI。如下图

 

 

 

这个增强BADI_MATN1下包含了一个接口IF_EX_BADI_MATN1,而这个接口下面包含了4个方法。查看这些方法是否有我们的需求。

 

 

 

 

 

点进方法里面取看,很显然,这是一个对MATNR进行输入输出转换增强。并不是我们想要的。

 

按照同样的步骤来查找最后可以找到是在BADI_MATERIAL_REF下CREATE_MATERIAL方法。然后在CT_SALES_TAX这个结构内去完成我们的需求。(小技巧,寻找BADI的时候如这个在给字段一个初始的默认值。那么可以先找到这个字段对应的字段名,然后根据参数中的描述和字段名去搜)

 

 

 

 

描述是对物料的税(非常接近我们想要的需求了)。

 

 

然后看它参考的结构,和屏幕字段上面的完全一致。确定就是它了。

 

 

 

 

 

 

已经找到需要的BADI了,接下来就是用BADI去实现我们的需求。首先我们要创建一个BADI的实现(BADI是面向对象的思想,可以把BADI理解为一个类)可以在SE18下这里的增强或者点击显示进去后的创建,这2种方法是完全一致的。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

双击方法进去写代码

 

 

 

 

 

 

写完后激活。

然后激活增强(上面是激活程序,这个是激活增强。不是一个东西!)

 

 

 

 

一般来说在测试增强前都要先检测确认下增强是否被激活

 

 

 

 

 

 

 

 

 

可以发现进入屏幕后自带默认值0了。完成测试。

 

 

 

 

 

 

学习心得: BADI可以说是基于面向对象概念的增强BADI源代码发布以接口的方式,通过接口来让用户实现增强,可以说让用户可以使用增强的地方更多了些。

 

容易的地方: 由于BADI都是一些接口,所以只需要找到对应的接口传对应的参数即可完成我们的需求。

难点:也由于BADI都是一些接口,所以有可能会有很多的参数。要找的我们需要的BADI和参数会有点难度。————————————————版权声明:本文为CSDN博主「Joker-Full-stack」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/huanglin6/article/details/81353793



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3